﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace OffInvoiceExcelAddIn
{
    public partial class FrmInvoiceType : Form
    {
        #region "Properties"

        /// <summary>
        /// Propiedad de tipo bool que indica si el usuario a seleccionado Facturae.
        /// </summary>
        public bool Facturae31 { get; set; }

        /// <summary>
        /// Propiedad de tipo bool que indica si el usuario a seleccionado Facturae.
        /// </summary>
        public bool Facturae32 { get; set; }

        /// <summary>
        /// Propiedad de tipo bool que indica si el usuario a seleccionado Facturae.
        /// </summary>
        public bool UBL { get; set; }

        /// <summary>
        /// Propiedad de tipo bool que indica si el usuario a seleccionado Facturae.
        /// </summary>
        public bool CII { get; set; }

        /// <summary>
        /// Propiedad de tipo bool que indica si el usuario a seleccionado factura en papel.
        /// </summary>
        public bool Paper { get; set; }

        #endregion

        #region "Constructors"

        /// <summary>
        /// Constructor que inicializa todos los componentes gráficos del formulario.
        /// </summary>
        public FrmInvoiceType()
        {
            InitializeComponent();
        }

        #endregion

        #region "EventHandler"


        /// <summary>
        /// Método que maneja el evento que se produce al hacer click con el ratón sobre el botón de aceptar.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnOk_Click(object sender, EventArgs e)
        {
            Facturae31 = rbtFacturae31.Checked;
            Facturae32 = rbtFacturae32.Checked;
            UBL = rbtUBL.Checked;
            CII = rbtCII.Checked;
            Paper = rbtPaper.Checked;
            this.Close();
        }

        /// <summary>
        /// Método que maneja el evento que se produce al hacer click con el ratón sobre el botón de cancelar.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        /// <summary>
        /// Método que maneja el evento que se produce al mostrarse el formulario.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FrmInvoiceType_Load(object sender, EventArgs e)
        {
            LoadLanguage();
            rbtFacturae31.Checked = Facturae31;
            rbtPaper.Checked = Paper;
            if (Facturae31 == false && Paper == false)
            {
                rbtFacturae31.Checked = true;
            }
        }

        #endregion

        #region "Public Methods"


        /// <summary>
        /// Método que carga el archivo de idioma y establece los textos de los controles
        /// en el idioma que corresponde.
        /// </summary>
        public void LoadLanguage()
        {
            try
            {
                Language labels = Language.getInstance();
                this.Text = labels.getLabels(this.Name);
                gbxSelectedType.Text = labels.getLabels(gbxSelectedType.Name);
                lbSelectedType.Text = labels.getLabels(lbSelectedType.Name);
                //rbtFacturae31.Text = labels.getLabels(rbtFacturae31.Name);
                rbtPaper.Text = labels.getLabels(rbtPaper.Name);
                btnCancel.Text = labels.getLabels(btnCancel.Name);
                btnOk.Text = labels.getLabels(btnOk.Name);
            }
            catch (Exception)
            {
                ControlMessages msg = ControlMessages.getInstance();
                MessageBox.Show(msg.getMessage(ControlMessages.Msg.ErrorLoadLanguage), msg.getMessage(ControlMessages.Msg.CaptionInvoiceType), MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        #endregion
    }
}
